// 为什么需要继承：父类中已经有的代码，子类可以直接继承
// 继承是多态的前提

function Person() {
  this.name = "frank";
  this.friends = [];
}

Person.prototype.eating = function () {
  console.log(this.name + "在吃饭");
};

function Student() {
  this.sno = 100;
}

Student.prototype = new Person();

Student.prototype.studying = function () {
  console.log(this.name + "在学习");
};

// var stu = new Student();

// console.log(stu.name);
// stu.eating();

// stu.studying();

// 原型链实现继承的弊端
// 1. 打印stu对象，继承的属性是看不到的
// console.log(stu);

// 2. 创建出两个对象，对象原型上的数据是互通的
var stu1 = new Student();
var stu2 = new Student();

stu1.name = "kobe";
console.log(stu2.name);

// 获取引用，修改引用种的值，会互相影响
stu1.friends.push("kobe");
console.log(stu1.friends);
console.log(stu2.friends);

// 3. 在前面实现类的过程中都没有传递参数
